package com.example.myapplication.views;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import com.example.myapplication.R;
import com.example.myapplication.bean.Student;
import com.example.myapplication.database.DBHelper;
import com.example.myapplication.utils.SpUtils;

// 登录界面
public class LoginActivity extends AppCompatActivity implements View.OnClickListener{
    private EditText mEtUsername; // 用户名输入框
    private EditText mEtPassword; // 密码输入框
    private Button mBtnRegister; // 注册按钮
    private Button mBtnLogin; // 登录按钮
    private SpUtils mSpUtils; // SharedPreferences工具类

    private static final String TAG = "LoginActivity"; // 日志标签

    // 创建时执行
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        mSpUtils = new SpUtils(this); // 初始化SharedPreferences工具类
        int loginId = mSpUtils.getInt(SpUtils.LOGIN_KEY, -1); // 获取登录状态
        Log.d("", "login id = " + loginId); // 打印登录状态

        // 如果已登录，则跳转到主界面
        if (loginId >= 0) {
            Intent intent = new Intent(LoginActivity.this, MainActivity.class);
            intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
            startActivity(intent);
            return;
        }

        setContentView(R.layout.activity_login); // 设置布局
        mEtUsername = findViewById(R.id.username); // 绑定用户名输入框
        mEtPassword = findViewById(R.id.password); // 绑定密码输入框
        mBtnRegister = findViewById(R.id.register); // 绑定注册按钮
        mBtnLogin = findViewById(R.id.loginBtn); // 绑定登录按钮

        mBtnRegister.setOnClickListener(this); // 注册按钮点击监听
        mBtnLogin.setOnClickListener(this); // 登录按钮点击监听
    }

    // 按钮点击事件处理
    @Override
    public void onClick(View v) {
        SpUtils mSpUtils1 = SpUtils.getInstance(); // 获取SharedPreferences工具类实例
        int id = v.getId(); // 获取被点击的控件ID
        if (id == R.id.register) { // 点击注册按钮，跳转到注册界面
            Intent intent = new Intent(LoginActivity.this, zhuceActivity.class);
            startActivity(intent);
        } else if (id == R.id.loginBtn) { // 点击登录按钮
            String username = mEtUsername.getText().toString(); // 获取输入的用户名
            String password = mEtPassword.getText().toString(); // 获取输入的密码
            Log.d(TAG, "Login with username: " + username + " and password: " + password); // 输出用户名和密码到控制台日志

            if (TextUtils.isEmpty(username) || TextUtils.isEmpty(password)) { // 用户名或密码没有输入，Toast提示。
                Toast.makeText(this, "用户名或密码不能为空", Toast.LENGTH_SHORT).show();
                return;
            }

            // 数据库中查询用户名和密码都匹配的数据
            Student student = DBHelper.getInstance(this).login(username, password);
            if (student == null) { // 没有匹配的数据，登录失败，Toast提示。
                Toast.makeText(this, "登录失败", Toast.LENGTH_SHORT).show();
            } else { // 登录成功跳转到主界面
                mSpUtils.putInt(SpUtils.LOGIN_KEY, student.getStudent_id()); // 记录当前登录学生的id
                mSpUtils1.putMap(SpUtils.LOGIN_KEY, student.getStudent_code()); // 记录当前登录学生的id

                Intent intent = new Intent(LoginActivity.this, MainActivity.class);
                intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
                startActivity(intent);
            }
        }
    }
}
